vscode搭建python开发与调试环境

您所在的位置:网站首页 vscode python 调试路径 vscode搭建python开发与调试环境

vscode搭建python开发与调试环境

2022-06-04 12:15| 来源: 网络整理| 查看: 265

requirejs的源码学习(01)——初始化流程

lengye7: 通过setTimeout创建一个异步任务,这个任务是用来创建script标签的,script标签开启了async属性,该属性使得scripts下载是异步的,同时,该任务会创建一个onload事件的监听函数;做完这两件事情时候,这个setTimeout创建的任务就执行完了。当脚本下载完成之后,页面会触发onload事件,相应的onload事件监听函数就得到执行。该onload事件的监听函数的功能就是解析刚刚下载好的scripts,如果发现这个scripts有依赖的模块,就继续通过setTimeout创建相应的异步任务,并订阅依赖模块加载完成的结束事件(发布订阅模型),然后结束。如果这个scripts没有依赖的模块,它就会被加载执行javascript代码,然后它就会转去执行自己的订阅者队列中的订阅函数,执行完这些订阅函数之后,就返回了。这里的关键点就在于这个订阅函数,主模块通过订阅依赖模块的结束事件,主模块的订阅函数得到执行;该订阅函数的功能是去检查主模块的所有依赖模块是否加载完成,如果主模块的依赖模块全部加载完成,那么该订阅函数就会去加载执行主模块的javascript代码,于是主模块加载完成。 这一套机制就保证了依赖模块早于主模块加载执行。 你说的异步加载,同步阻塞,我不太明白是什么意思?你指的是最终JS代码的加载执行是同步阻塞?恐怕并不完全是这样,因为它实际上是一套发布订阅者模型,这套模型实际上也是一种异步编程模式。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3